/*!
 * \file ISessionMgr.h
 * \project	WonderTrader
 *
 * \author Wesley
 * \date 2020/03/30
 * 
 * \brief 交易时段模块管理接口定义
 * \details 定义了交易时段管理模块的核心接口，提供交易时段信息的获取和管理功能
 */
#pragma once

#include "WTSMarcos.h"

NS_WTP_BEGIN
class WTSSessionInfo;

/**
 * @class ISessionMgr
 * @brief 交易时段管理接口
 * @details 交易时段管理模块的核心接口，负责管理各种合约的交易时段信息。
 *          主要功能包括：
 *          - 根据合约代码获取交易时段信息
 *          - 支持不同交易所的时段管理
 *          - 提供统一的时段信息查询接口
 *          
 *          该接口为交易系统提供时段管理服务，确保交易操作在正确的时间范围内进行。
 *          不同品种和交易所可能有不同的交易时段，该接口提供统一的管理方式。
 */
class ISessionMgr
{
public:
	/**
	 * @brief 获取合约对应的交易时段模块信息指针
	 * @details 根据合约代码和可选的交易所代码获取对应的交易时段信息。
	 *          交易时段信息包含开盘时间、收盘时间、休市时间等重要信息。
	 * 
	 * @param code 合约代码，如"rb2405"、"IF2312"等
	 * @param exchg 交易所代码，默认为空字符串表示自动匹配交易所
	 * @return WTSSessionInfo* 交易时段模块指针，获取失败返回NULL
	 * 
	 * @note 返回的指针需要调用方负责释放内存
	 * @note 如果exchg为空，系统会根据合约代码自动识别对应的交易所
	 */
	virtual WTSSessionInfo* getSession(const char* code, const char* exchg = "")	= 0;
};
NS_WTP_END